# 序列：元组(tuple),列表(list)

# 元组（）

# 1.创建
person = ()  # 空元组
person = (1, '张飞', '屠夫', None, 200000, True)  # 一维
person = ((1, '张飞', "屠夫", None, 200000, True),
          (2, '曹操', '校尉', '蔡夫人', 20000000, True),
          (3, '关羽', '保安', None, 1000, False),
          (4, '诸葛亮', '地主', '黄月英', 30000000, True))

# 2.访问（很骚的操作很多）
#         0    1       2     3      4      5
person = (1, '张飞', '屠夫', None, 20000, True)
       # -6   - 5    -4    - 3    - 2   - 1

# 通过下标去访问
print(person[1])  # 建议自己这样玩
print(person[-5])    # 看懂别人这样玩
# 切片
print(person[1:4])   # [1:4) 从X开始到Y结束，不包括Y
print(person[-5:4])
print(person[1:-2])
print(person[-2:-5])  # 切片为空

print(person[0:4])
print(person[-4:])
print(person[::2])

# 迭代输出
person=(1,'张飞','屠夫',None,200000,True)

for i in range(len(person)):
    print(person[i])

person = ((1, '张飞', "屠夫", None, 200000, True),
          (2, '曹操', '校尉', '蔡夫人', 20000000, True),
          (3, '关羽', '保安', None, 1000, False),
          (4, '诸葛亮', '地主', '黄月英', 30000000, True))

print(person[0][0])
print(person[1][3])

for i in range(len(person)):
    for j in range(len(person[i])):
        print(person[i][j])

# 2.列表
# 1.创建，访问，遍历，和元组一模一样，只是表示时用[]
# 1.创建
person = []  # 空元组
person = [1, '张飞', '屠夫', None, 200000, True]  # 一维
person = [
    [1, '张飞', '屠夫', None, 200000, True],
    [2, '曹操', '校尉', '蔡夫人', 20000000, True],
    [3, '关羽', '保安', None, 1000, False],
    [4, '诸葛亮', '地主', '黄月英', 300000000, True]
]

# 2、访问(很骚的操作很多)
person = [1, '张飞', '屠夫', None, 200000, True]
print(person[2])

# 3、遍历
for i in range(len(person)):
    print(person[i])

# 2、列表是链表结构，因此他有自己独有的方法，我们往往喜欢用列表而不是元组
# 学习重点是学习列表的独有的方法
person = [1, '张飞', '屠夫', None, 200000, True]
# 新增

person.append(25)
print(person)

person.insert(2,'丈八蛇矛')
print(person)

